/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.in.entity;

import org.hibernate.validator.constraints.Length;
import com.thinkgem.jeesite.modules.sys.entity.Area;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 库存Entity
 * @author alex
 * @version 2017-05-04
 */
public class Inventory extends DataEntity<Inventory> {
	
	private static final long serialVersionUID = 1L;
	private String proId;		// 商品编码
	private String proCode;		// 商品条码
	private String proName;		// 商品名称
	private String batchId;		// 批次号
	private String warehouseId;		// 仓库ID
	private String warehouseName;		// 仓库
	private Area area;		// 库区ID
	private String areaName;		// 库区
	private String locationId;		// 货位ID
	private String locationName;		// 货位
	private String boxId;		// 周转箱ID
	private String boxName;		// 周转箱
	private String brandName;		// 品牌
	private String useNum;		// 可用数量
	private String realOutNum;		// 冻结数量
	private String allotNum;		// 分配数量
	private String unitType;		// 库存单位
	private Date reviceDate;		// 收货日期
	private Date expireDate;		// 过期日期
	private String status;		// 库存状态
	private String ableSale;		// 是否可售
	private String safeNum;		// 安全库存
	private String receNum;		// 收货区库存
	
	public Inventory() {
		super();
	}

	public Inventory(String id){
		super(id);
	}

	@Length(min=0, max=30, message="商品编码长度必须介于 0 和 30 之间")
	public String getProId() {
		return proId;
	}

	public void setProId(String proId) {
		this.proId = proId;
	}
	
	@Length(min=0, max=50, message="商品条码长度必须介于 0 和 50 之间")
	public String getProCode() {
		return proCode;
	}

	public void setProCode(String proCode) {
		this.proCode = proCode;
	}
	
	@Length(min=0, max=50, message="商品名称长度必须介于 0 和 50 之间")
	public String getProName() {
		return proName;
	}

	public void setProName(String proName) {
		this.proName = proName;
	}
	
	@Length(min=0, max=30, message="批次号长度必须介于 0 和 30 之间")
	public String getBatchId() {
		return batchId;
	}

	public void setBatchId(String batchId) {
		this.batchId = batchId;
	}
	
	@Length(min=0, max=30, message="仓库ID长度必须介于 0 和 30 之间")
	public String getWarehouseId() {
		return warehouseId;
	}

	public void setWarehouseId(String warehouseId) {
		this.warehouseId = warehouseId;
	}
	
	@Length(min=0, max=50, message="仓库长度必须介于 0 和 50 之间")
	public String getWarehouseName() {
		return warehouseName;
	}

	public void setWarehouseName(String warehouseName) {
		this.warehouseName = warehouseName;
	}
	
	public Area getArea() {
		return area;
	}

	public void setArea(Area area) {
		this.area = area;
	}
	
	@Length(min=0, max=50, message="库区长度必须介于 0 和 50 之间")
	public String getAreaName() {
		return areaName;
	}

	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}
	
	@Length(min=0, max=30, message="货位ID长度必须介于 0 和 30 之间")
	public String getLocationId() {
		return locationId;
	}

	public void setLocationId(String locationId) {
		this.locationId = locationId;
	}
	
	@Length(min=0, max=50, message="货位长度必须介于 0 和 50 之间")
	public String getLocationName() {
		return locationName;
	}

	public void setLocationName(String locationName) {
		this.locationName = locationName;
	}
	
	@Length(min=0, max=30, message="周转箱ID长度必须介于 0 和 30 之间")
	public String getBoxId() {
		return boxId;
	}

	public void setBoxId(String boxId) {
		this.boxId = boxId;
	}
	
	@Length(min=0, max=50, message="周转箱长度必须介于 0 和 50 之间")
	public String getBoxName() {
		return boxName;
	}

	public void setBoxName(String boxName) {
		this.boxName = boxName;
	}
	
	@Length(min=0, max=30, message="品牌长度必须介于 0 和 30 之间")
	public String getBrandName() {
		return brandName;
	}

	public void setBrandName(String brandName) {
		this.brandName = brandName;
	}
	
	@Length(min=0, max=11, message="可用数量长度必须介于 0 和 11 之间")
	public String getUseNum() {
		return useNum;
	}

	public void setUseNum(String useNum) {
		this.useNum = useNum;
	}
	
	@Length(min=0, max=11, message="冻结数量长度必须介于 0 和 11 之间")
	public String getRealOutNum() {
		return realOutNum;
	}

	public void setRealOutNum(String realOutNum) {
		this.realOutNum = realOutNum;
	}
	
	@Length(min=0, max=11, message="分配数量长度必须介于 0 和 11 之间")
	public String getAllotNum() {
		return allotNum;
	}

	public void setAllotNum(String allotNum) {
		this.allotNum = allotNum;
	}
	
	@Length(min=0, max=1, message="库存单位长度必须介于 0 和 1 之间")
	public String getUnitType() {
		return unitType;
	}

	public void setUnitType(String unitType) {
		this.unitType = unitType;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getReviceDate() {
		return reviceDate;
	}

	public void setReviceDate(Date reviceDate) {
		this.reviceDate = reviceDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getExpireDate() {
		return expireDate;
	}

	public void setExpireDate(Date expireDate) {
		this.expireDate = expireDate;
	}
	
	@Length(min=0, max=1, message="库存状态长度必须介于 0 和 1 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@Length(min=0, max=1, message="是否可售长度必须介于 0 和 1 之间")
	public String getAbleSale() {
		return ableSale;
	}

	public void setAbleSale(String ableSale) {
		this.ableSale = ableSale;
	}
	
	@Length(min=0, max=11, message="安全库存长度必须介于 0 和 11 之间")
	public String getSafeNum() {
		return safeNum;
	}

	public void setSafeNum(String safeNum) {
		this.safeNum = safeNum;
	}
	
	public String getReceNum() {
		return receNum;
	}

	public void setReceNum(String receNum) {
		this.receNum = receNum;
	}
	
}